package ar.com.psicosoft.model.psicosoft_admin;

import java.io.Serializable;

import javax.persistence.*;

import java.sql.Timestamp;
import java.util.List;

/**
 * The persistent class for the sesion_usuario database table.
 * 
 */
@Entity
@Table(name = "sesion_usuario", schema = "psicosoft_admin")
@NamedQuery(name = "SesionUsuario.findAll", query = "SELECT s FROM SesionUsuario s")
public class SesionUsuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name = "sec_sesion_usuario", sequenceName = "psicosoft_admin.sec_sesion_usuario")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec_sesion_usuario")
	@Column(name = "\"idSesion\"", unique = true, nullable = false)
	private Integer idSesion;

	@Column(length = 70)
	private String equipo;

	private Timestamp fin;

	@Column(length = 50)
	private String hostname;

	@Column(name = "\"idPersona\"", nullable = false)
	private Integer idPersona;

	private Timestamp inicio;

	@Column(length = 19)
	private String ip;

	// bi-directional many-to-one association to AgendaSesion
	@OneToMany(mappedBy = "sesionUsuario")
	private List<AgendaSesion> agendaSesions;

	// bi-directional many-to-one association to Usuario
	@ManyToOne(targetEntity = Usuario.class)
	@JoinColumn(name = "\"idPersona\"", nullable = false, insertable = false, updatable = false)
	private Usuario usuario;

	public SesionUsuario() {
	}

	public Integer getIdSesion() {
		return this.idSesion;
	}

	public void setIdSesion(Integer idSesion) {
		this.idSesion = idSesion;
	}

	public String getEquipo() {
		return this.equipo;
	}

	public void setEquipo(String equipo) {
		this.equipo = equipo;
	}

	public Timestamp getFin() {
		return this.fin;
	}

	public void setFin(Timestamp fin) {
		this.fin = fin;
	}

	public String getHostname() {
		return this.hostname;
	}

	public void setHostname(String hostname) {
		this.hostname = hostname;
	}

	public Integer getIdPersona() {
		return this.idPersona;
	}

	public void setIdPersona(Integer idPersona) {
		this.idPersona = idPersona;
	}

	public Timestamp getInicio() {
		return this.inicio;
	}

	public void setInicio(Timestamp inicio) {
		this.inicio = inicio;
	}

	public String getIp() {
		return this.ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

	public List<AgendaSesion> getAgendaSesions() {
		return this.agendaSesions;
	}

	public void setAgendaSesions(List<AgendaSesion> agendaSesions) {
		this.agendaSesions = agendaSesions;
	}

	public AgendaSesion addAgendaSesion(AgendaSesion agendaSesion) {
		getAgendaSesions().add(agendaSesion);
		agendaSesion.setSesionUsuario(this);

		return agendaSesion;
	}

	public AgendaSesion removeAgendaSesion(AgendaSesion agendaSesion) {
		getAgendaSesions().remove(agendaSesion);
		agendaSesion.setSesionUsuario(null);

		return agendaSesion;
	}

	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

}